Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO


■プリンタBIOS
	プリンタインターフェースの概要
      o IEEE STD 1284搭載機は、PC-9801BA2・BS2・BX2・NS/A, PC-9821Ap2・As2・Bf・Bp・
	Bs・Be・Ts・Cs2・Ce2(PC-H98以外でプリンタコネクタに36Pハーフピッチ
	アンフェノールコネクタを使用している機種)。
      u IEEE STD 1284搭載機に98ハイレゾボード(PC-9821A-E02を実装したときは、
	必ず98ハイレゾボード上のプリンタインターフェースが使用される。この
	ため、ノーマルモードのときは簡易セントロニクス専用、ハイレゾモードの
	ときはフルセントロニクス専用となる。
      o IEEE STD 1284搭機(ノーマル)と、PC-H98(ノーマル)では、プリンタ
	インターフェースをフルセントロニクスモードに切り替えることができる。
	このとき、ハイレゾ用のファンクションは使用できないが、BIOS実行後に
	返される終了ステータスはハイレゾのフルセントロニクスと同じになるので
	注意が必要である。このため、終了ステータスは簡易セントロニクスと
	フルセントロニクスで分類してある。
      u フルセントロニクスモードでEPSONプリンタを接続するときには、EPSON製の
	ケーブルを使う必要がある。EPSONプリンタは、セントロニクス
	インターフェースの+5Vを出力する端子番号がPC-PRシリーズと違うので、
	NEC製ケーブルを使用するとプリンタの電源ONを認識できないためである。
表	使用可能なプリンタインターフェースと機種の対応
	----------------------+----------+---------+-----------+-----------
	機種タイプ            |入出力機能|フルセントロニクス|簡易セントロニクス|ODAプリンタ
	----------------------+----------+---------+-----------+-----------
	IEEE STD 1284搭載機   |    ○    |    ○   |    ○     |    ×     
	----------------------+----------+---------+-----------+-----------
	PC-H98ノーマル        |    ×    |    ○   |    ○     |    ×     
	----------------------+----------+---------+-----------+-----------
	ハイレゾ(PC-H98を含む)|    ×    |    ○   |    ×     |    ×     
	----------------------+----------+---------+-----------+-----------
	ノーマル(PC-H98を除く)|    ×    |    ×   |    ○     |    ×     
	----------------------+----------+---------+-----------+-----------
	PC-98LT・HA            |    ×    |    ×   |    ○     |    ×     
	----------------------+----------+---------+-----------+-----------
	PC-9801初代・E・F・M     |    ×    |    ×   |    ○     |    ○     
	----------------------+----------+---------+-----------+-----------
	* PC-9801初代・E・F・Mは、メモリスイッチ3 bit 5=1のとき、ODAプリンタ
	  インターフェース(PC-9801-05)を使用する。PC-9801E・F・MでODAプリンタが
	  使用できることはUndocumented。
	* PC-9801U・VM2・VFでは、メモリスイッチ3 bit 5=1のとき、プリンタBIOSを
	  実行すると、AH=00hでなにもせずに戻る。


INT 1Ah - Function 10h
分類	PRINTER BIOS
名前	初期化
対象	ノーマル,ハイレゾ,PC-98LT・HA
入力	AH=10h
出力	■簡易セントロニクスモード
	AH=終了ステータス
	   00h: プリンタBUSY
	   01h: データ送信可
	■フルセントロニクスモード
	AH=終了ステータス
	   00h: データ送信可能
	   01h: BUSY
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o プリンタインターフェースの初期化を行う。
	このファンクションを実行しても、プリンタインターフェースのモードは
	変化しない。
      o ハイレゾモードでは、プリンタBUSYのウェイト時間を4秒に設定する。
      o フルセントロニクスモードでは、INPUT PRIMEを26ms以上の期間
	アクティブにする。
      u	プリンタBIOSでは、システム起動後、このファンクションを実行しなくても
	送信などのファンクションを使用できる。ただし、ハイレゾモードでは、
	起動後のプリンタBUSYのウェイト時間の初期値は0(タイムアウトしない)に
	設定されている。
      o	AH,ALには現在のプリンタの状態が返る。
      o 簡易セントロニクスモードでは、プリンタ電源OFFまたはプリンタ未接続の
	とき、それを検出しないためAH=01hで戻る。簡易セントロニクスモードは
	BUSY状態しか検出できない。
関連	0000:041Ch[ハイレゾ]


INT 1Ah - Function 11h
分類	PRINTER BIOS
名前	データの出力(ウェイトモード)
対象	ノーマル,ハイレゾ,PC-98LT・HA
入力	AH=11h
	AL=出力データ
出力	■簡易セントロニクスモード
	AH=終了ステータス
	   01h: データ送信完了
	   02h: タイムアウトで送信できなかった
	AL=不定
	■フルセントロニクスモード
	AH=終了ステータス
	   00h: データ送信完了
	   02h: タイムアウトで送信できなかった
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o プリンタにデータ送信が可能なとき、1バイトのデータを出力する。
	一定時間BUSY状態が続くと、タイムアウトしてリターンする。
	ハイレゾモードでは、タイムアウト時間をINT 1Ah - Function 16hで
	設定可能。
      o 簡易セントロニクスモードでは、プリンタ電源OFFまたはプリンタ未接続の
	とき、それを検出しないためAH=01hで戻る。簡易セントロニクスモードは
	BUSY状態しか検出できない。
      u テクニカルデータブックには、簡易セントロニクスモードでプリンタBUSYの
	ときAH=00hになるという記述があるが、実際には00hが返されることはない。
関連	INT 1Ah - Function 16h
	INT 1Ah - Function 30h
	0000:041Ch[ハイレゾ]
	I/O 0040h
	I/O 0140h[IEEE STD 1284搭載機]


INT 1Ah - Function 12h
分類	PRINTER BIOS
名前	ステータスの取得
対象	ノーマル,ハイレゾ,PC-98LT・HA
入力	AH=12h
出力	■簡易セントロニクスモード
	AH=終了ステータス
	   00h: プリンタBUSY
	   01h: データ送信可
	■フルセントロニクスモード
	AH=終了ステータス
	   00h: データ送信可能
	   01h: BUSY
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	AL=プリンタポートステータス
	    bit 7: SELECT
		1= SELECTがインアクティブ(オフライン)
		0= SELECTがアクティブ(オンライン)
	    bit 6: FAULT
		1= FAULTがインアクティブ
	        0= FAULTがアクティブ(印字不可)
	    bit 5: PE
		1= PEがインアクティブ
	        0= PEがアクティブ(用紙切れ)
	    bit 4: DC+5V
		1= DC+5Vがインアクティブ(電源OFF)
	        0= DC+5Vがアクティブ(電源ON)
	    bit 3: INPUT BUSY
		1= INPUT BUSYがインアクティブ
	        0= INPUT BUSYがアクティブ
		* IEEE STD 1284搭載機は、BUSYと連動
	    bit 2: BUSY
		1= BUSYがインアクティブ(データ受信可)
	        0= BUSYがアクティブ(データ受信不可)
	    bit 1: ACK-R
		1= ACK-Rがアクティブ
	        0= ACK-Rがインアクティブ
		* IEEE STD 1284搭載機は、常に0
	    bit 0: ACK
		1= ACKがインアクティブ
	        0= ACKがアクティブ
解説  o プリンタの状態を通知する。
      o 簡易セントロニクスモードでは、プリンタ電源OFFまたはプリンタ未接続の
	とき、それを検出しないためAH=01hで戻る。簡易セントロニクスモードは
	BUSY状態しか検出できない。
関連	I/O 0042h
	I/O 0141h[IEEE STD 1284搭載機]


INT 1Ah - Function 13h
分類	PRINTER BIOS
名前	機能なし
対象	ノーマル,ハイレゾ,PC-98LT・HA
入力	AH=13h
出力	なし
解説  o 
関連	


INT 1Ah - Function 14h
分類	PRINTER BIOS
名前	データの出力(ノーウェイトモード)
対象	ハイレゾ
入力	AH=14h
	AL=出力するデータ
出力	AH=終了ステータス
	   00h: データ送信完了
	   02h: タイムアウトで送信できなかった
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o プリンタにデータ送信が可能なとき、1バイトのデータを出力する。
      u このファンクションは、以下のような処理を行う。
	1. 最初にプリンタのステータスを調べる。
	2. ステータスが00h(データ送信可能)であれば、INT 1Ah - Function 11hの
	   処理ルーチンにジャンプ。
	3. ステータスが01h(BUSY)のときは、まずAL=08hでINT 1Fh - Function 82hを
	   実行。その後、INT 1Ah - Function 11hの処理ルーチンにジャンプ。
	4. ステータスがその他の値のときは、AHに終了ステータス(03〜05h)をセット
	   してリターン。
関連	INT 1Ah - Function 11h
	INT 1Fh - Function 82h


INT 1Ah - Function 15h
分類	PRINTER BIOS
名前	データの出力(チェックレスモード)
対象	ハイレゾ
入力	AH=15h
	AL=出力するデータ
出力	AH=終了ステータス
	   00h: データ送信完了
	   01h: BUSY
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o プリンタのステータスをチェックせずに1バイトのデータを送信する。
      u	終了ステータス・プリンタポートステータスは、データ出力直後の
	プリンタの状態。
関連	


INT 1Ah - Function 16h
分類	PRINTER BIOS
名前	初期化(ウェイト時間設定)
対象	ハイレゾ
入力	AH=16h
	CX=プリンタBUSYのタイムアウト時間(単位:10ms)
	   * 0000hを設定するとタイムアウトしない
出力	AH=終了ステータス
	   00h: データ送信可能
	   01h: BUSY
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o プリンタインターフェースの初期化を行う。プリンタがBUSYのときのタイム
	アウト時間が設定できる以外、処理内容はINT 1Ah - Function 10hと同じ。
      o	AH,ALには現在のプリンタの状態が返る。
関連	0000:041Ch
	INT 1Ah - Function 10h


INT 1Ah - Function 17h
分類	PRINTER BIOS
名前	プリンタインターフェースフルセントロニクス化
対象	PC-H98ノーマル,IEEE STD 1284搭載機
入力	AH=17h
出力	AH=終了ステータス
	   00h: データ送信可能
	   01h: BUSY
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	   06h: モードエラー■[IEEE STD 1284搭載機のみ]
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o プリンタインターフェースをフルセントロニクスモードに切り換え、
	初期化を行う。初期化の処理はINT 1Ah - Function 10hと同じ。
      o INT 1Ah - Function 19hの結果が「フルセントロニクス使用可能」のとき
	利用できる。
      u IEEE STD 1284搭載機では、プリンタインターフェース変換アダプタ
	(本体の36Pハーフピッチアンフェノールを簡易セントロニクス用の
	14Pや20Pに変換するコネクタ)を装着している場合、モードエラーになる。
      o	AH,ALには現在のプリンタの状態が返る。
関連	0000:0458h bit 2,1
	0000:05B3h[IEEE STD 1284搭載機]
	INT 1Ah - Function 10h
	INT 1Ah - Function 19h
	INT 1Ah - Function 1Ah
	I/O 0448h[PC-H98]
	I/O 0149h[IEEE STD 1284搭載機]


INT 1Ah - Function 18h
分類	PRINTER BIOS
名前	ステータス取得
対象	PC-H98ノーマル,IEEE STD 1284搭載機
入力	AH=18h
出力	AH=終了ステータス
	   00h: データ送信完了
	   01h: BUSY
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	   06h: モードエラー■[IEEE STD 1284搭載機のみ]
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o 現在のモード(簡易・フルセントロニクス)にかかわらず、フルセントロニクス
	モード時のステータスを返す。
      o INT 1Ah - Function 19hの結果が「フルセントロニクス使用可能」のとき
	利用できる。
      u IEEE STD 1284搭載機では、プリンタインターフェース変換アダプタ
	(本体の36Pハーフピッチアンフェノールを簡易セントロニクス用の
	14Pや20Pに変換するコネクタ)を装着している場合、モードエラーになる。
関連	INT 1Ah - Function 19h


INT 1Ah - Function 19h
分類	PRINTER BIOS
名前	プリンタモード取得
対象	ノーマル,ハイレゾ,PC-98LT・HA
入力	AH=19h
出力	AH=モード情報
	bit 7: IEEE STD 1284使用可能フラグ(Undocumented)
		1= 入出力可能
		   (INT 1Ah - Function 1Bh使用可能)
		0= 出力オンリ
		   (INT 1Ah - Function 1Bh使用不可能)
	bit 6,5:IEEE STD 1284モード■[IEEE STD 1284搭載機のみ](Undocumented)
		01b= 入出力モード
		   (INT 1Ah - Function 1C〜1Dh使用可能)
		00b= 互換モード
		   (INT 1Ah - Function 1C〜1Dh使用不可能)
	bit 1: 現在のプリンタインターフェースのモード
		1= フルセントロニクスモード
		0= 簡易セントロニクスモード
	bit 0: フルセントロニクス使用可能フラグ
		1= フルセントロニクス使用可能
		   (INT 1Ah - Function 17〜1Ah使用可能)
		0= フルセントロニクス使用不可能
		   (INT 1Ah - Function 17〜1Ah使用不可能)
解説  o プリンタインターフェースの能力と現在のモードを取得する。
	フルセントロニクスが使用可能な機種は、PC-H98ノーマルと、
	IEEE STD 1284搭載機。
	IEEE STD 1284の入出力モードが使用可能な機種は、IEEE STD 1284搭載機
	のみ。
      u IEEE STD 1284搭載機では、プリンタインターフェース変換アダプタ
	(本体の36Pハーフピッチアンフェノールを簡易セントロニクス用の
	14Pや20Pに変換するコネクタ)を装着している場合、
	フルセントロニクスモードや入出力モードに切り換えることはできない。
	しかし、このファンクションでは使用可能という結果が返るので注意。
      o PC-9821Ap2・As2に98ハイレゾボード(PC-9821A-E02)を実装したときは、
	AH=00hが返る。ノーマルモード、ハイレゾモードにかかわらず、
	98ハイレゾボード上のプリンタポートが使用されるため。
      o PC-H98ノーマル・IEEE STD 1284搭載機以外の機種で実行したときにも
	必ずAH=00hが返る。
関連	0000:0458h
	0000:05B3h[IEEE STD 1284搭載機]
表	■IEEE STD 1284搭載機の各モードとINT 1Ah - Function 19hの結果
	----------------------------+--------------------------------
	モード設定方法              |INT 1Ah - Function 19hモード情報
	                            +-------+------------------------
	                            |bit 6,5|bit 1
	----------------------------+-------+------------------------
	簡易セントロニクス(初期状態)|00b    |0b   
	----------------------------+-------+------------------------
	フルセントロニクスモード    |       |     
	(INT 1Ah - Function 17h)    |00b    |1b   
	----------------------------+-------+------------------------
	簡易セントロニクスモード    |       |     
	(INT 1Ah - Function 1Ah)    |00b    |0b   
	----------------------------+-------+------------------------
	入出力モード                |       |     
	(INT 1Ah - Function 1Bh)    |01b    |1b   
	----------------------------+-------+------------------------


INT 1Ah - Function 1Ah
分類	PRINTER BIOS
名前	プリンタインターフェース簡易セントロニクス化
対象	PC-H98ノーマル,IEEE STD 1284搭載機
入力	AH=1Ah
出力	■IEEE STD 1284搭載機
	AH=終了ステータス
	   00h: プリンタBUSY
	   01h: データ送信可
	■PC-H98
	AH=00h
解説  o プリンタインターフェースを簡易セントロニクスモードに設定する。
      o IEEE STD 1284搭載機は、INT 1Ah - Function 10hと同じ初期化処理も行う。
	このため、AHに現在のプリンタの状態が返る。
      o INT 1Ah - Function 19hの結果が「フルセントロニクス使用可能」のとき
	利用できる。
関連	0000:0458h
	0000:05B3h
	INT 1Ah - Function 17h
	INT 1Ah - Function 19h


INT 1Ah - Function 1Bh
分類	PRINTER BIOS
名前	プリンタインターフェース入出力化
	Undocumented
対象	IEEE STD 1284搭載機
入力	AH=1Bh
出力	AH=終了ステータス
	   00h: データ送信可能
	   01h: BUSY
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	   06h: モードエラー
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o プリンタインターフェースを入出力モードに設定する。INT 1Ah - 
	Function 1Ch,1Dhが使用可能になる。
      o	AH,ALには現在のプリンタの状態が返る。
      o INT 1Ah - Function 19hの結果が「入出力可能」のとき利用できる。
      u IEEE STD 1284搭載機では、プリンタインターフェース変換アダプタ
	(本体の36Pハーフピッチアンフェノールを簡易セントロニクス用の
	14Pや20Pに変換するコネクタ)を装着している場合、モードエラーになる。
      u	入出力モードでも、INT 1Ah - Function 11h等の出力系ファンクションは
	使用できる。このとき、終了ステータスはフルセントロニクスモードと同じ
	になる。
関連	0000:0458h
	0000:05B3h


INT 1Ah - Function 1Ch
分類	PRINTER BIOS
名前	接続機器の転送機能確認
	Undocumented
対象	IEEE STD 1284搭載機
入力	AH=1Ch
出力	AH=終了ステータス
	   00h: 正常終了
	   06h: モードエラー(入出力モードに設定されていない)
	■AH=00hのとき
	AL=プリンタポートに接続されている機器の転送機能
	    bit 1=1: バイトモードでプリンタポートからの入力が可能
		  0: バイトモードでプリンタポートからの入力は不可能
	    bit 0=1: ニブルモードでプリンタポートからの入力が可能
		  0: ニブルモードでプリンタポートからの入力は不可能
解説  o プリンタポートに接続されている機器の転送機能を調べるファンクションと
	思われる。詳細不明。
      o INT 1Ah - Function 1Bhを実行して「入出力モード」に設定したとき
	利用可能。
関連	INT 1Ah - Function 19h
	INT 1Ah - Function 1Dh


INT 1Ah - Function 1Dh
分類	PRINTER BIOS
名前	データ入力
	Undocumented
対象	IEEE STD 1284搭載機
入力	AH=1Dh
	AL=入力タイプ
	    01h : ニブルモード(4bit × 2)
	    02h : バイトモード(8bit × 1)
出力	AH=終了ステータス(INT 1Ah - Function 12h参照)
	■AH≠06hのとき
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
	BH=入力タイプ
	    01h : ニブルモード(4bit × 2)
	    02h : バイトモード(8bit × 1)
	BL=受信データ
	■AH=06h(モードエラー)のとき
	BH=終了ステータス(INT 1Ah - Function 12h参照)
	BL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o プリンタインターフェースから入力を行う。詳細不明。
      o	ニブルモードでは、プリンタポートのステータス信号線を利用して、
	1バイトのデータを2回に分割して受信する。
	バイトモードでは、プリンタポートのデータ信号線の方向を出力時とは
	逆にして、1バイトのデータを1回の転送で受信する。
      o INT 1Ah - Function 1Bhを実行して「入出力モード」に設定したとき
	利用可能。
	入出力モード以外のときと、AL=01h,02h以外で実行したときはモードエラー。
関連	INT 1Ah - Function 19h
	INT 1Ah - Function 1Ch


INT 1Ah - Function 30h
分類	PRINTER BIOS
名前	複数バイトデータ出力
対象	ノーマル,ハイレゾ,PC-98LT・HA
入力	AH=30h
	CX=出力データ長
	ES:BX=データバッファの先頭アドレス
出力	ES:BX=送信終了したデータの次のアドレス
	CX=未出力データ長(正常終了時は0000h)
	■簡易セントロニクスモードのとき
	AH=終了ステータス
	   00h: データ送信完了
	   02h: タイムアウト(未出力データあり)
	AL=不定
	■フルセントロニクスモード
	AH=終了ステータス
	   00h: データ送信完了
	   02h: タイムアウトで送信できなかった
	   03h: オフライン
	   04h: ペーパーエンド
	   05h: プリンタ未接続または電源OFF
	AL=プリンタポートステータス(INT 1Ah - Function 12h参照)
解説  o バッファに格納されているデータをプリンタに出力する。
      u ノーマルモードのときの終了ステータスは、INT 1Ah - Function 11hと
	異なるので注意。
      o 簡易セントロニクスモードでは、プリンタ電源OFFまたはプリンタ未接続の
	とき、それを検出しないためAH=00hで戻る。簡易セントロニクスモードは
	BUSY状態しか検出できない。
関連	INT 1Ah - Function 11h